       ID Division.
       Program-ID. A1903b.
       Environment Division.
      *Datendeklaration
       Data Division.
       01  person.
           02 persnr pic x(4).
           02 namen.
               03 nname pic x(20).
               03 vname pic x(15).
           02 adresse.
               03 ort pic x(10).
               03 strase pic x(10).
               03 land pic x(3).
               03 plz pic x(3).
           02 gebdat.
               03 jahr pic 9999.
               03 mon pic 99.
               03 tag pic 99.
           02 gehalt pic 999999V99 packed-decimal.
      *Ausgabeformate
       01  gehalt-out pic 9(6).99.
       Procedure division.
       main.
           display 'Gib deine Personalnr ein: ' upon console
           accept persnr from console
           if persnr not numeric then
           display 'Fehler: Personalnummer falsch' upon console
           perform ende
           else
           display 'Gib deinen Vornamen ein: ' upon console
           accept vname from console
           if vname = Spaces then
           display 'Fehler: Vorname falsch' upon console
           perform ende
           else
           display 'Gib deinen Nachname ein: ' upon console
           accept nname from console
           if nname = Spaces then
           display 'Fehler: Nachname falsch' upon console
           perform ende
           else
           display 'Gib deinen Wohnort ein: ' upon console
           accept ort from console
           if ort = Spaces then
           display 'Fehler: Wohnort falsch' upon console
           perform ende
           else
           display 'Gib deine Strase ein: ' upon console
           accept strase from console
           if strase = Spaces then
           display 'Fehler: Strase falsch' upon console
           perform ende
           else
           display 'Gib deinen Heimatland ein: ' upon console
           accept land from console
           if land = Spaces then
           display 'Fehler: Heimatland falsch' upon console
           perform ende
           else
           display 'Gib deine PLZ ein: ' upon console
           accept plz from console
           if plz not numeric then
           display 'Fehler: PLZ falsch' upon console
           perform ende
           else
           display 'Gib dein Gebjahr ein: ' upon console
           accept jahr from console
           if jahr < 1900 or jahr > 2000
           display 'Fehler: Gebjahr falsch' upon console
           perform ende
           else
           display 'Gib dein Gebmonat ein: ' upon console
           accept mon from console
           if mon < 1 or mon > 12 then
           display 'Fehler: Gebmonat falsch' upon console
           perform ende
           else
           display 'Gib deinen Gebtag ein: ' upon console
           accept tag from console
           perform datum
           display 'Fehler: Gebtag falsch' upon console
           perform ende
           else
           display 'Gib deine Gehalt ein: ' upon console
           accept gehalt from console
           if gehalt not numeric then
           display 'Fehler: Gehalt falsch' upon console
           perform ende
           else
           perform ausgabe
           perform ende
           end-if
           end-if
           end-if
           end-if
           end-if
           end-if
           end-if
           end-if
           end-if
           end-if.

       ausgabe.
           move gehalt to gehalt-out
           display 'Deine Personalnr ist: ' persnr upon console
           display 'Dein Vorname ist: ' vname upon console
           display 'Dein Nachname ist: ' nname upon console
           display 'Dein Wohnort ist: ' ort upon console
           display 'Deine Strase ist: ' strase upon console
           display 'Dein Heimatland ist: ' land upon console
           display 'Deine PLZ ist: ' plz upon console
           display 'Dein Gebjahr ist: ' jahr upon console
           display 'Dein Gebmonat ist: ' mon upon console
           display 'Dein Gebtag ist: ' tag upon console
           display 'Dein Gehalt betraegt: ' gehalt-out upon console.

       datum.
           if mon = 1 or mon = 3 or mon = 5 or mon = 12 or mon = 10 or
           mon = 8 then
       if tag > 0 and tag < 32
       else
           perform ende
       end-if
           else
           if mon = 4 or mon = 6 or mon = 7 or mon = 9 or mon = 9 then
           if tag > 0 and tag < 30
           else
           perform ende
       end-if
           end-if.


       ende.
           stop run.
